Field index out of range

Otázka od: Andreas Bednarek

28. 6. 2004 16:19

Ahoj konference,

nemohu prijit na to co mi zpusobuje hlasku %SUBJ%. Pracuji s Paradoxovou
tabulkou v Dephi 4 (jedna se o starsi projekt).

Upresnim:
1. v Query1 proveden SQL dotaz 'select * from TABLE1 where FIELD1 = n'
2. Nasledne je otevren formular (ShowModal) na nemz je DBGrid napojeny na
Query1

Vznikne vyse zminena vyjimka a ve zpracovani programu nejde pokracovat, po
F9 se hlaseni o chybe opakuje stale na ShowModal.

Zdrojova tabulka se zda byt konzistentni (kontrolovano utilitou DBRepair), v
DBGrid nejsou definovany zadne sloupce, ktere by v tabulce (resp. Query1)
neexistovaly. Podle me by melo byt vse v poradku...


Poradite prosim?
Diky
Andreas D4



Odpovedá: Petr Brant

28. 6. 2004 16:41

Patrne jsou fieldy Query chybne napojene na sloupce gridu. Podivej se take
na OnShow ci OnActivate formu, jestli se tam nedeje nejaka nedobrota. Zkus
misto TQuery vytvorit TTable a over si, ze se grid zobrazuje dobre. Mohlo by
take pomoct misto Select * napsat select ... a vycet potrebnych sloupcu.
Patrne je problem ve strukture tabulky.

RNDr. Petr Brant [brant@dcomm.cz]
http://web.redbox.cz/petr.brant <http://web.redbox.cz/petr.brant>

> nemohu prijit na to co mi zpusobuje hlasku %SUBJ%. Pracuji s Paradoxovou
> tabulkou v Dephi 4 (jedna se o starsi projekt).
>
> Upresnim:
> 1. v Query1 proveden SQL dotaz 'select * from TABLE1 where FIELD1 = n'
> 2. Nasledne je otevren formular (ShowModal) na nemz je DBGrid napojeny na
> Query1
>
> Vznikne vyse zminena vyjimka a ve zpracovani programu nejde pokracovat, po
> F9 se hlaseni o chybe opakuje stale na ShowModal.
>
> Zdrojova tabulka se zda byt konzistentni (kontrolovano utilitou DBRepair),
> v
> DBGrid nejsou definovany zadne sloupce, ktere by v tabulce (resp. Query1)
> neexistovaly. Podle me by melo byt vse v poradku...

Odpovedá: Andreas Bednarek

28. 6. 2004 18:40

Uz to jede.

> Patrne jsou fieldy Query chybne napojene na sloupce gridu. Podivej se take
> na OnShow ci OnActivate formu, jestli se tam nedeje nejaka nedobrota. Zkus
> misto TQuery vytvorit TTable a over si, ze se grid zobrazuje dobre. Mohlo
by
> take pomoct misto Select * napsat select ... a vycet potrebnych sloupcu.

To jsem prave vsechno kontroloval a bylo to v poradku, nakonec byla chyba v
tom, ze puvodni autor v programu nastavoval property TTable.IndexName na
jmeno neexistujiciho sloupce! (nechapu, bylo to prolezle celym programem na
mnoha mistech a nedochazi mi, jaky to melo mit vyznam - sortovani je
vyresene pomoci ORDER BY nebo samo o sobe, takze otaznik).

Tak snad uz to je v poradku, diky za namety.
Andreas